草庐IT

c++ tcp多线程

全部标签

java - "RMI TCP Connection(idle)"线程对应什么类型的连接?

我正在使用jdk1.6开发基于RMI的分布式系统。有时我会看到RMI运行时未能序列化对象时该线程发生的ConcurrentModificationException错误。通过同时更新从远程方法返回的对象,我可以轻松地重现该异常。但问题是我找不到那些电话的来源。RMI异常被写入stderr(在退出远程对象方法后在运行时代码中在服务器端捕获),但在客户端服务中没有匹配的异常(如果那是合法的远程调用,RemoteException将引发适当的原因)。这些异常的唯一不同之处在于它们发生在“RMITCP连接(空闲)”线程上,而不是发生在“RMITCP连接()-”之类的线程上。关于RMI中那些“空

java - 线程退出回调

我需要能够为当前运行的线程注入(inject)一些退出代码。我已经为此苦苦挣扎了一段时间,我终于想出了一个解决方案,这里有一些类似于我正在做的代码:publicstaticvoidinjectThreadExitCallback(finalRunnablecallback){finalcurr=Thread.currentThread();newThread(){@Overridepublicvoidrun(){try{curr.join();callback.run();}catch(InterruptedExceptionex){...logging...}}}.start();}

java - 哪个 JVM 打印出这样的线程转储?

我习惯于看到如下所示的Java线程转储,这是由SunHotSpotJVM及其衍生产品(例如OpenJDK)生成的线程转储:"main"prio=10tid=0x00007f4020009000nid=0x538cinObject.wait()[0x00007f402891f000]java.lang.Thread.State:WAITING(onobjectmonitor)atjava.lang.Object.wait(NativeMethod)-waitingon(ajava.lang.Object)atjava.lang.Object.wait(Object.java:503)at

JavaFX:从线程更新 Controller 类中的 UI 元素

在JavaFX中,我有一个Controller类,它从FXML文件中提取控制组件,并具有作用于该组件的方法,此处用标签显示:publicclassViewController{@FXMLprivateLabellabelStatus;publicvoidupdateStatusLabel(Stringlabel){labelStatus.setText("Status:"+label);}}我还有一个带有run()方法的Java线程,如下所示:publicclassServerextendsThread{publicvoidrun(){super.run();}}此服务器线程处理我的特

java - Java中的多线程解压

因此,我尝试在Java中对zip文件进行只读访问,以多线程方式解压缩,因为我的ZipFile/ZipEntry标准简单单线程解决方案使用枚举和输入流以及其他结果将一个50兆的zip文件解压到内存中大约需要整整五秒钟,这最多需要一秒钟才能让我的磁盘在不解压的情况下读取。但是,整个Javazip库的同步化程度令人难以置信,这无疑是因为它都是为读/写等而抽象的。在相同的代码中,而不是使用高效的非同步只读代码。我查看了第三方Java库,它们要么是庞大的VFS库,比用大象枪打苍蝇还糟糕,要么它们具有性能优势的唯一原因是它们是多线程的大多数线程在磁盘IO上阻塞的程度。我想要做的就是将一个zip文件

java - Java 中没有同步的线程安全单例?

我有一个多线程应用程序和一个单例类:publicfinalclassSingleton{privatestaticMyClassmc;publicstaticfinalObjectgetInstance(){if(mc==null){mc=newMyClass();}returnmc;}}当然,这在一般的多线程场景下是行不通的。但请考虑以下情况:一开始只有一个线程该线程第一次调用getInstance(),使mc初始化。之后所有其他线程都由第一个线程启动。我的假设:这应该可行,因为mc字段的初始化和对象的构造发生在启动其他线程的所有后续Thread.start()调用之前.并且线程的T

java - 计算线程池中可用于提高性能的最大线程数

最近我接受了一次面试,面试官问我可以分配给线程池的最大线程数是多少。我回答他这将取决于硬件组合。我也可以通过增加线程池中的线程来手动测试执行。他似乎对此并不满意。任何人都可以告诉我们如何决定我们应该使用多少线程以获得更好的性能。任何指南链接将不胜感激(在核心Java应用程序中) 最佳答案 谁能告诉我们如何决定我们应该使用多少线程以获得更好的性能-这绝对不是最大线程数。为了获得最佳性能,线程数量应等于处理器核心数(不要忘记使用-XmsYYYYM和-XmxYYYYMstrong>,如果没有它们,您可能会遇到处理器未将线程分配给内核的情况

java - 忽略事件分派(dispatch)线程如何让这个程序工作?

当我试图看看我是否能回答thisquestionearliertoday.我意识到我不完全理解EventDispatchThread(美国东部时间)。Googling双方都确认并帮助了这一点并澄清了whyIdon't.(This也可能与理解有关。)该代码设置了一个GUI,随后(如前面的问题)更新了一个文本字段,直到取消设置标志。我有几个问题/请求。如果两个调用(对swingInit和doIt)都在invokeLater之外,请解释为什么下面的代码运行正常block(如图所示),因为这两个调用都会影响或查询GUI,但都不会在EDT上执行(是吗?)。那不是招来失败吗?如果调用swingIn

java - 最高效但线程安全的列表/集合

Java有大量不同的Collections是为并发和线程安全而设计的,我不知道该选择哪一个来满足我的情况。多个线程可能正在调用.add()和.remove(),我会经常用ListnewList=newArrayList(concurrentList)之类的东西复制这个列表.我永远不会遍历并发列表。我想到了类似CopyOnWriteArrayList的事情,但我读到它可能非常低效,因为它每次修改时都会复制自己。我希望在安全和效率之间找到一个好的折衷方案。这种情况的最佳列表(或集合)是什么? 最佳答案 正如@SpiderPig所说,Li

java - Hazelcast 线程阻止 TomEE 停止

上下文我们想使用Hazelcast作为我们在TomEE中的JCache实现。由于我们不需要疯狂的性能,目前,我们希望将Hazelcast节点作为我们应用程序的一部分运行。我们使用Hazelcast3.7和TomEE7.0.1。问题当停止TomEE时,它会提示警告-Web应用程序[APPLICATION_NAME]似乎已经启动了一个名为[SOMENAME]的线程,但未能停止它。这很可能会造成内存泄漏。几次,VM将不会正常停止,而是继续运行。解决方法显然是在进程看起来空闲时立即终止进程。不用说,这让我们的开发人员和开发运营人员发疯了。单独的Hazelcast节点为了排除在TomEE中运行的